note
	description: "Summary description for {ACTION}."
	author: ""
	date: "$Date$"
	revision: "$Revision$"

class
	ACTION

create
	make

feature {NONE} -- Initialization

	id : STRING;
	portee : STRING; -- enum CIBLE
	duree : INTEGER;
	modifier : INTEGER;
	categorie : STRING; -- enum EFFET
	actionSupp : HASH_TABLE[ACTION,STRING];
	prerequis : HASH_TABLE[ETAT,STRING];
	etatsEntraines : HASH_TABLE[ETAT,STRING];
	listeClasses : HASH_TABLE[CLASSE,STRING];

feature {ANY}
	make (libelle : STRING; port : STRING; dure : INTEGER; modif : INTEGER; categ : STRING)
			-- Initialization for `Current'.
		do
			id := libelle
			portee := port
			duree := dure
			modifier := modif
			categorie := categ
			create actionSupp.make(1)
			create etatsEntraines.make(1)
			create prerequis.make(1)
			create listeClasses.make(1)
		end

	getId() : STRING
		do
			Result := id
		end

	getModifier() : INTEGER
		do
			Result := modifier
		end

	getActionsSupp() : HASH_TABLE[ACTION,STRING]
		do
			Result := actionSupp
		end

	getEtatsEntraines() : HASH_TABLE[ETAT,STRING]
		do
			Result := etatsEntraines
		end

	getPortee() : STRING
		do
			Result := portee
		end

	getDuree() : INTEGER
		do
			Result := duree
		end

	getCategorie() : STRING
		do
			Result := categorie
		end

	getPrerequis() : HASH_TABLE[ETAT,STRING]
		do
			Result := prerequis
		end

	addPrerequis(etat : ETAT)
		do
			prerequis.extend (etat, etat.getid)
		end

	addActionsSupp(action : ACTION)
		do
			actionSupp.extend(action,action.getid())
		end

	addEtatsEntraines(etat : ETAT)
		do
			etatsEntraines.extend(etat,etat.getid())
		end

end
